﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Datos.Entidades;
using Datos.Fabricas;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using Logica.Comandos.ComandosAdministracionApuesta;
using Logica.Comandos.ComandosAdministracionEvento;


namespace Pruebas
{
    [TestFixture]
    public class PruebaApuestas
    {
        
        Entidad aaa = new Entidad();
        Entidad aaaa = new Entidad();

        [TestCase]
        public void InsertarAccesoApuesta()
        {

            Entidad crearEvento = FabricaEntidades.ObtenerEvento();


            (crearEvento as Evento).Monto = 500;
            (crearEvento as Evento).Puntos = 3;
            (crearEvento as Evento).FK_Id_Evento = 1;
            (crearEvento as Evento).FK_Id_Maquina = 1;
            (crearEvento as Evento).Id_HistorialParticipante =1;

            Comando comandoEvento = FabricaComandoApuesta.ObtenerComandoInsertarAccesoApuesta();
            comandoEvento.Entidad = crearEvento;
            Boolean respuestaUsuario = false;

            (comandoEvento as ComandoCrearApuesta).Ejecutar();
            respuestaUsuario = comandoEvento.Flag;

            Assert.AreEqual(respuestaUsuario,true);
        }

        [TestCase]
        public void ConsultarMaquina()
        {
            Comando comando = FabricaComandoApuesta.ObtenerComandoMostrarMaquina();
            comando.Ejecutar();
            List<Entidad> misEventosCategorias = new List<Entidad>();
            misEventosCategorias = comando.ListaEntidad;
            int id = (misEventosCategorias.ElementAt(0) as Maquina).IdMaquina;
            Assert.AreEqual(id, 1);

        }

        [TestCase]
        public void obtenerCategoriaNOmbre2()
        {
            int idEvento = 5;
            Entidad aaaa = new Entidad();
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoParticipante3();
            comando.Id = idEvento;
            (comando as ComandoBuscarEventoParticipante3).Ejecutar();
            aaaa = comando.Entidad;
            string id = (aaaa as Evento).NombreEvento;
            Assert.AreEqual(id,"mlb");
        }
        [TestCase]
        public void obtenerCategoriaNOmbre()
        {
            string nomb = "mis universo";
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoNombre();
            comando.Tipo = nomb;
            (comando as ComandoBuscarEventoNombre).Ejecutar();
            aaa = comando.Entidad;
            int id = (aaa as Evento).Id_Evento;
            Assert.AreEqual(id, 1);
        }

        [TestCase]
        
        public void obtenerCategoriaNOmbre3()
        {
            int idd = 1;
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoParticipante4();
            comando.Id = idd;
            (comando as ComandoBuscarEventoParticipante4).Ejecutar();
            aaaa = comando.Entidad;
            int id = (aaaa as Evento).Posiciones;
            Assert.AreEqual(id, 0);
        }
    }


}
